package com.ruoyi.house.service;

import com.ruoyi.house.domain.LoudongEntity;
import com.ruoyi.house.domain.PublicFacilityEntity;
import com.ruoyi.house.domain.RoomImageEntity;
import com.ruoyi.house.domain.RoomInfoEntity;
import com.ruoyi.house.dto.QueryRoomInfoResponseDto;
import com.ruoyi.house.dto.request.RequestDetailRoomInfoDto;
import com.ruoyi.house.dto.request.RequestSearchRoomsDto;
import com.ruoyi.house.dto.response.ResponseDetailRoomInfoDto;
import com.ruoyi.house.dto.response.ResponseSearchRoomsDto;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 房源信息表
 * 
 * @author LZJ
 * @email LZJ@wish.com
 * @date 2018-02-11 17:08:31
 */
public interface RoomInfoService {
	
	/**
	 * 
	 * @Description: 获取房源详情
	 * @param requestDetailRoomInfoDto
	 * @return ResponseDetailRoomInfo
	 */
	ResponseDetailRoomInfoDto detailRoomInfo(RequestDetailRoomInfoDto requestDetailRoomInfoDto);
	
	/**
	 * 
	 * @Description: 获取房源列表
	 * @param requestSearchRoomsdto
	 * @return List<ResponseSearchRoomsDto>
	 */
	List<ResponseSearchRoomsDto> searchRooms(RequestSearchRoomsDto requestSearchRoomsdto);
	
	RoomInfoEntity queryObject(Integer id); 
	
	List<RoomInfoEntity> queryList(Map<String, Object> map);
	
	int queryTotal(Map<String, Object> map);
	
	void save(RoomInfoEntity roomInfo);

	void update(RoomInfoEntity roomInfo);

	void update(RoomInfoEntity roomInfo, List<String> houseImages);

    void delete(String id);
	
	void deleteBatch(String[] ids);

	List<Map<String, Object>> getRoomStatuslist();

	/**
	 * 查询房源商户列表
	 * @return list
	 */
	List<RoomInfoEntity> queryListByBusiness(Map<String, Object> map);

	List<PublicFacilityEntity> getPublicFacilitieTypeList();

	List<Map<String, Object>> getPaymentMortgageList();

	List<Map<String, Object>> getPaymentPayList();

	List<Map<String, Object>> getDecorateList();
	List<Map<String, Object>> getDirectionList();

	void deleteByHouse(String houseId);

	List<Map<String, Object>> getPropertyTypeList();

	List<Map<String, Object>> getPostStatusList();

	RoomInfoEntity queryObjectById(String id);

	void updateStates(RoomInfoEntity roomInfo);

	void inserCentralLizedRoom(List<LoudongEntity> loudongArr, Long deptId);

	void inserCentralLizedRoom(RoomInfoEntity roomInfo);

	int queryListTotal(Map<String, Object> map);

	List<Map<String, Object>> getHuxingShiList();

	List<Map<String, Object>> getHuxingTingList();

	List<String> queryPic(String roomId);

	List<LoudongEntity> getLoudongArrEntityByHouseId(String houseId);

    void savePic(RoomImageEntity roomImageEntity);

	void recommendedRooms(String id);

	void save(RoomInfoEntity room, List<String> houseImages);

	List<QueryRoomInfoResponseDto> queryRoomInfoList(HashMap<String, Object> map);

	int queryRoomInfoTotal();
	
	public List<QueryRoomInfoResponseDto> queryAllList(HashMap<String,Object> map);
	
	public void updateRoomInfoAllEs();

	void qxRecommendedRooms(String ids);

	RoomInfoEntity selectById(String roomId);
	
}
